package ar.com.sistventa.form.articulos;

import java.awt.BorderLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

import ar.com.sistventa.dao.CategoriaDAO;
import ar.com.sistventa.dao.MarcaDAO;
import ar.com.sistventa.dao.UnidadDAO;
import ar.com.sistventa.dao.impl.CategoriaDAOImpl;
import ar.com.sistventa.dao.impl.MarcaDAOImpl;
import ar.com.sistventa.dao.impl.UnidadDAOImpl;
import ar.com.sistventa.entities.Categoria;
import ar.com.sistventa.entities.Marca;
import ar.com.sistventa.entities.Unidad;
import ar.com.sistventa.utils.Constantes;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class AgregarMarcaCategoriaUnidadForm extends JDialog {

	private static final long serialVersionUID = 1L;
	private final JPanel contentPanel = new JPanel();
	private JTextField txtDescripcion;

	private int tipoVentana;
	private CategoriaDAO categoriaDAO;
	private MarcaDAO marcaDAO;
	private UnidadDAO unidadDAO;

	/**
	 * Create the dialog.
	 */
	public AgregarMarcaCategoriaUnidadForm(JDialog parent, int tipoVentana) {
		super(parent, true);
		setResizable(false);
		this.tipoVentana = tipoVentana;
		categoriaDAO = new CategoriaDAOImpl();
		marcaDAO = new MarcaDAOImpl();
		unidadDAO = new UnidadDAOImpl();
		initForm();
		inicializar();
	}

	private void initForm() {
		setBounds(100, 100, 187, 155);
		getContentPane().setLayout(new BorderLayout());
		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(contentPanel, BorderLayout.CENTER);
		contentPanel.setLayout(null);

		JLabel lblDescripcion = new JLabel("Descripcion");
		lblDescripcion.setBounds(22, 11, 76, 14);
		contentPanel.add(lblDescripcion);

		txtDescripcion = new JTextField();
		txtDescripcion.setBounds(20, 36, 133, 20);
		contentPanel.add(txtDescripcion);
		txtDescripcion.setColumns(10);

		JButton btnAgregar = new JButton("");
		btnAgregar.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				eventoBotonAgregar();
			}
		});
		btnAgregar.setToolTipText("Agregar");
		btnAgregar.setIcon(new ImageIcon(Constantes.IMAGEN_CONFIRMAR));
		btnAgregar.setBounds(63, 65, 40, 40);
		contentPanel.add(btnAgregar);

		JButton btnCancelar = new JButton("");
		btnCancelar.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				eventoBotonCancelar();
			}
		});
		btnCancelar.setToolTipText("Cancelar");
		btnCancelar.setIcon(new ImageIcon(Constantes.IMAGEN_CANCELAR));
		btnCancelar.setBounds(113, 65, 40, 40);
		contentPanel.add(btnCancelar);
	}

	private void inicializar() {
		if (tipoVentana == Constantes.MARCA) {
			setTitle("Agregar Marca");
		}
		if (tipoVentana == Constantes.CATEGORIA) {
			setTitle("Agregar Categoria");
		}
		if (tipoVentana == Constantes.UNIDAD) {
			setTitle("Agregar Unidad");
		}
	}

	private void eventoBotonAgregar() {
		if (!txtDescripcion.getText().trim().equals("")) {
			if (tipoVentana == Constantes.MARCA) {
				Marca marca = new Marca();
				marca.setDescripcion(txtDescripcion.getText().toUpperCase());
				marcaDAO.guardar(marca);
			}
			if (tipoVentana == Constantes.CATEGORIA) {
				Categoria categoria = new Categoria();
				categoria.setDescripcion(txtDescripcion.getText().toUpperCase());
				categoriaDAO.guardar(categoria);
			}
			if (tipoVentana == Constantes.UNIDAD) {
				Unidad unidad = new Unidad();
				unidad.setDescripcion(txtDescripcion.getText().toUpperCase());
				unidadDAO.guardar(unidad);
			}
			this.setVisible(false);
			this.dispose();
		}
	}

	private void eventoBotonCancelar() {
		this.setVisible(false);
		this.dispose();
	}
}
